package com.sanploy.manage.mapper;

import com.sanploy.common.domain.FreightModel;
import com.sanploy.common.domain.Test;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * Created by zhu yingzhi on 2017/9/7.
 * @author yingzhi zhu
 * 运费模板数据库操作类
 */
@Mapper
 public interface FreightMapper {

    /**
     * 插入运费模板
     * @param name
     * @param is_free
     * @param province
     * @param city
     * @param county
     * @param detail
     * @param position
     * @param remote_json
     * @param local_json
     * @return 数据库影响行数
     */
     int insertFreight(@Param("name") String name, @Param("is_free") boolean is_free, @Param("province") String province,
                       @Param("city") String city, @Param("county") String county, @Param("detail") String detail,
                       @Param("position") String position, @Param("remote_json") String remote_json, @Param("local_json") String local_json);

    /**
     * 更新运费模板
     * @param id
     * @param name
     * @param is_free
     * @param province
     * @param city
     * @param county
     * @param detail
     * @param position
     * @param remote_json
     * @param local_json
     * @return 数据库影响行数
     */
     int updateFreight(@Param("id") Long id, @Param("name") String name, @Param("is_free") boolean is_free, @Param("province") String province,
                       @Param("city") String city, @Param("county") String county, @Param("detail") String detail,
                       @Param("position") String position, @Param("remote_json") String remote_json, @Param("local_json") String local_json);

    /**
     * 擦好找所有运费模板
     * @return 运费模板集合
     */
    @Select("select * from freight_model")
     List<FreightModel> findAll();

    /**
     * 删除某个运费模板
     * @param id 运费模板id
     * @return 数据库影响行数
     */
    @Delete("DELETE FROM freight_model WHERE id=#{id}")
     int deleteFreight(@Param("id") Long id);

    /**
     * 查找某个运费模板
     * @param id 运费模板id
     * @return 运费模板实体
     */
    @Select("select * from freight_model where id=#{id}")
     FreightModel selectFreightOne(@Param("id") Long id);

    /**
     * 测试
     * @param id
     * @return
     */
     Test selectTestById(Long id);

    /**
     * 测试
     * @return
     */
    @Select("select test.name from test where id=1")
     String getOne();

    /**
     * 测试
     * @param test
     * @return
     */
     int test(Map<String, Object> test);

}
